#pragma once
#include "ASTree.h"
#include <stack>
#include "SourceManager.h"

namespace AST {

class Builder
{
public:
	Builder(void);
	~Builder(void);
	
	//member methods
	void buildAST(char* filename, ASTree& tree);
	std::string& source();
	AST::SourceManager srcMgr;

protected:
	CXTranslationUnit TU;
	CXIndex index;
	std::string sourceString;

};

CXChildVisitResult visitorFuction(CXCursor cursor, CXCursor parent, CXClientData client_data);

} //namespace AST
